Spring Boot當中,事務管理是資料一致性與可靠性的關鍵機制,使用Spring Boot的 @Transactional標注,即可達到自動管理事務的功能,確保操作失敗時會自動進行事務回滾,避免資料不一致或錯誤的情況。
事務回滾的目的是要在多個操作中,不會因某個操作失敗而讓其他操作完成,這是為了避免資料庫的數據部分成功、部分失敗的狀況,在有多個資料表或資源更新的操作下,這是非常重要。
舉例來說,轉帳時,若扣款成功,但入帳失敗,就得使用回滾機制,讓這筆交易操作都回滾在操作前的狀態,否則金額會不一致,有錯誤轉出的狀況。
而另一個重要的作用是,在異常的狀況下,可以透過回滾機制讓資料庫回到正確的狀態,避免讓損壞的數據提交導致系統異常。
事務管理並非Spring Boot才有,關於Java的框架(如Spring Framework、Java EE、JPA 等)幾乎都能適用事務管理及回滾事務管理及回滾機制,不過Spring Boot只要使用@Transactional即能管理事務,不用手動編寫繁瑣邏輯,大幅降低我們編寫程式的負擔。